﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sispe.Entities;
using Sispe.BussinesLogic;
using Microsoft.Practices.Unity;

namespace Sispe.UI
{
    public partial class FrmHojaRecorrido : Form
    {
        [Dependency]
        public IContratoBL contratoBL { get; set; }

        [Dependency]
        public ILiquidacionBL liquidacionBL { get; set; }

        [Dependency]
        public IUsuarioBL usuarioBL { get; set; }

        [Dependency]
        public IHojaDeRecorridoBL hojaBL { get; set; }

        public int IdContrato;
        public string dni;
        public int IdAreaLiquidacion;

        public void Editar()
        {
            var contrato = hojaBL.GetFromIdContrato(IdContrato);
            hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.DataSource = contrato;
            //fechaInicioDateTimePicker.Value = contrato.LIQUIDACION.CONTRATO.FechaInicio;
            //fechaTerminoDateTimePicker.Value = contrato.LIQUIDACION.CONTRATO.FechaTermino;
        }

        public FrmHojaRecorrido()
        {
            InitializeComponent();
            this.BuildUp();
        }

        private void FrmHojaRecorrido_Load(object sender, EventArgs e)
        {
            CargarDatos();
            EnableDisable();
        }

        private void EnableDisable()
        {
            rRHH_OtrosComentarioTextBox.Enabled = rRHH_OtrosCheckBox.Checked ? true : false;
            lS_OtrosComentarioTextBox.Enabled = lS_OtrosCheckBox.Checked ? true : false;
            lA_OtrosComentarioTextBox.Enabled = lA_OtrosCheckBox.Checked ? true : false;
            lT_OtrosComentarioTextBox.Enabled = lT_OtrosCheckBox.Checked ? true : false;
            oP_OtrosComentarioTextBox.Enabled = oP_OtrosCheckBox.Checked ? true : false;
            aD_OtrosComentarioTextBox.Enabled = aD_OtrosCheckBox.Checked ? true : false;
            lA_EPPComentarioTextBox.Enabled = lA_EPPCheckBox.Checked ? true : false;
        }

        private void CargarDatos()
        {
            //var contrato = contratoBL.GetFromContratoById(IdContrato);
            //cONTRATOBindingSource.DataSource = contrato;

            cONTRATOBindingSource.DataSource = contratoBL.GetFromContratoById(IdContrato);

            var liquidacion = liquidacionBL.GetFromLiquidacionByNumeroContrato(IdContrato);

            if (liquidacion.SeguiraTrabajando == true)
            {
                lblEstado.Text = "Seguirá trabajando.";
                rRHH_ExamenRetiroCheckBox.Enabled = false;
            }
            else
            {
                lblEstado.Text = "Cese Definitivo.";                
            }

            var usuario = usuarioBL.GetAllFromUsuarioByPersonaId(dni);

            if (usuario.IdAreaLiquidacion == 2) // RRHH
            {
                gbRRHH.Enabled = true;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 3) // Operaciones
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = true;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 4) // Logistica
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = true;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 5) // Logistica Sistemas
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = true;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 6) // Logistica Almacen
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = true;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 7) // Logistica Transportes
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = true;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
            }
            else if (usuario.IdAreaLiquidacion == 8) // Administracion
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = true;
            }
            else if (usuario.IdAreaLiquidacion == 9) // Administración General
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = false;
                gbAdministracion.Enabled = false;
                gbAdministradorGeneral.Enabled = true;
            }
            else if (usuario.IdAreaLiquidacion == 1005)
            {
                gbRRHH.Enabled = false;
                gbLogistica.Enabled = false;
                gbLogisticaAlmacen.Enabled = false;
                gbLogisticaSistemas.Enabled = false;
                gbLogisticaTransportes.Enabled = false;
                gbOperaciones.Enabled = true;
                gbAdministracion.Enabled = false;
                gbAdministradorGeneral.Enabled = false;
                llblHojaOperaciones.Enabled = true;
                oP_InformeDigitalCheckBox.Enabled = false;
                oP_InformeFisicoCheckBox.Enabled = false;
                oP_OtrosCheckBox.Enabled = false;
                oP_OtrosComentarioTextBox.Enabled = false;
                gbBotonesOperaciones.Enabled = false;
            }
        }

        private void btnAprobarLO_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.LO_VistoBueno = true;
                _current.LO_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarLO_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (lO_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.LO_VistoBueno = false;
                    _current.LO_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnAprobarLA_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.LA_EPP = lA_EPPCheckBox.Checked ? true : false;
                _current.LA_EPPComentario = lA_EPPComentarioTextBox.Text.ToUpper();
                _current.LA_Otros = lA_OtrosCheckBox.Checked ? true : false;
                _current.LA_OtrosComentario = lA_OtrosComentarioTextBox.Text.ToUpper();
                _current.LA_Radio = lA_RadioCheckBox.Checked ? true : false;
                _current.LA_VistoBueno = true;
                _current.LA_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarLA_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (lA_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.LA_EPP = lA_EPPCheckBox.Checked ? true : false;
                    _current.LA_EPPComentario = lA_EPPComentarioTextBox.Text.ToUpper();
                    _current.LA_Otros = lA_OtrosCheckBox.Checked ? true : false;
                    _current.LA_OtrosComentario = lA_OtrosComentarioTextBox.Text.ToUpper();
                    _current.LA_Radio = lA_RadioCheckBox.Checked ? true : false;
                    _current.LA_VistoBueno = false;
                    _current.LA_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnAprobarLT_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.LT_Vehiculo = lT_VehiculoCheckBox.Checked ? true : false;
                _current.LT_Otros = lT_OtrosCheckBox.Checked ? true : false;
                _current.LT_OtrosComentario = lT_OtrosComentarioTextBox.Text.ToUpper();
                _current.LT_VistoBueno = true;
                _current.LT_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarLT_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (lT_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.LT_Vehiculo = lT_VehiculoCheckBox.Checked ? true : false;
                    _current.LT_Otros = lT_OtrosCheckBox.Checked ? true : false;
                    _current.LT_OtrosComentario = lT_OtrosComentarioTextBox.Text.ToUpper();
                    _current.LT_VistoBueno = false;
                    _current.LT_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnAprobarLS_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.LS_CorreoCorporativo = lS_CorreoCorporativoCheckBox.Checked ? true : false;
                _current.LS_Desktop = lS_DesktopCheckBox.Checked ? true : false;
                _current.LS_Laptop = lS_LaptopCheckBox.Checked ? true : false;
                _current.LS_Otros = lS_OtrosCheckBox.Checked ? true : false;
                _current.LS_OtrosComentario = lS_OtrosComentarioTextBox.Text.ToUpper();
                _current.LS_VistoBueno = true;
                _current.LS_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarLS_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (lS_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.LS_CorreoCorporativo = lS_CorreoCorporativoCheckBox.Checked ? true : false;
                    _current.LS_Desktop = lS_DesktopCheckBox.Checked ? true : false;
                    _current.LS_Laptop = lS_LaptopCheckBox.Checked ? true : false;
                    _current.LS_Otros = lS_OtrosCheckBox.Checked ? true : false;
                    _current.LS_OtrosComentario = lS_OtrosComentarioTextBox.Text.ToUpper();
                    _current.LS_VistoBueno = false;
                    _current.LS_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnAprobarRRHH_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.RRHH_ExamenRetiro = rRHH_ExamenRetiroCheckBox.Checked ? true : false;
                _current.RRHH_Fotocheck = rRHH_FotocheckCheckBox.Checked ? true : false;
                _current.RRHH_Otros = rRHH_OtrosCheckBox.Checked ? true : false;
                _current.RRHH_OtrosComentario = rRHH_OtrosComentarioTextBox.Text.ToUpper();
                _current.RRHH_VistoBueno = true;
                _current.RRHH_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarRRHH_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (rRHH_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.RRHH_ExamenRetiro = rRHH_ExamenRetiroCheckBox.Checked ? true : false;
                    _current.RRHH_Fotocheck = rRHH_FotocheckCheckBox.Checked ? true : false;
                    _current.RRHH_Otros = rRHH_OtrosCheckBox.Checked ? true : false;
                    _current.RRHH_OtrosComentario = rRHH_OtrosComentarioTextBox.Text.ToUpper();
                    _current.RRHH_VistoBueno = false;
                    _current.RRHH_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnAprobarOP_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;

                var hojaRecorrido = hojaBL.GetHojaRecorridoByIdLiquidacion(_current.IdLiquidacion);

                if (hojaRecorrido.JOF)
                {
                    if (_current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 5 || _current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 19)
                    {
                        _current.OP_InformeDigital = oP_InformeDigitalCheckBox.Checked ? true : false;
                        _current.OP_InformeFisico = oP_InformeFisicoCheckBox.Checked ? true : false;
                        _current.OP_Otros = oP_OtrosCheckBox.Checked ? true : false;
                        _current.OP_OtrosComentario = oP_OtrosComentarioTextBox.Text.ToUpper();
                        _current.OP_VistoBueno = true;
                        _current.OP_Fecha = DateTime.Now.Date;
                        hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                        MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("No existe Hoja Operaciones para esta Categoria.", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("Debe aprobar la Hoja de Operaciones.", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarOP_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (oP_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;

                    var hojaRecorrido = hojaBL.GetHojaRecorridoByIdLiquidacion(_current.IdLiquidacion);

                    if (hojaRecorrido.JOF)
                    {
                        if (_current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 5 || _current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 19)
                        {
                            _current.OP_InformeDigital = oP_InformeDigitalCheckBox.Checked ? true : false;
                            _current.OP_InformeFisico = oP_InformeFisicoCheckBox.Checked ? true : false;
                            _current.OP_Otros = oP_OtrosCheckBox.Checked ? true : false;
                            _current.OP_OtrosComentario = oP_OtrosComentarioTextBox.Text.ToUpper();
                            _current.OP_VistoBueno = false;
                            _current.OP_Fecha = DateTime.Now.Date;
                            hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                            MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("No existe Hoja Operaciones para esta Categoria.", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Debe aprobar la Hoja de Operaciones.", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }

        private void btnAprobarAD_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";

            try
            {
                var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                _current.AD_Camara = aD_CamaraCheckBox.Checked ? true : false;
                _current.AD_Celular = aD_CelularCheckBox.Checked ? true : false;
                _current.AD_Modem = aD_ModemCheckBox.Checked ? true : false;
                _current.AD_Otros = aD_OtrosCheckBox.Checked ? true : false;
                _current.AD_OtrosComentario = aD_OtrosComentarioTextBox.Text.ToUpper();
                _current.AD_VistoBueno = true;
                _current.AD_Fecha = DateTime.Now.Date;
                hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnDesaprobarAD_Click(object sender, EventArgs e)
        {
            var msg = "ERROR!";
            if (aDGRAL_VistoBuenoCheckBox.Checked)
            {
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.AD_Camara = aD_CamaraCheckBox.Checked ? true : false;
                    _current.AD_Celular = aD_CelularCheckBox.Checked ? true : false;
                    _current.AD_Modem = aD_ModemCheckBox.Checked ? true : false;
                    _current.AD_Otros = aD_OtrosCheckBox.Checked ? true : false;
                    _current.AD_OtrosComentario = aD_OtrosComentarioTextBox.Text.ToUpper();
                    _current.AD_VistoBueno = false;
                    _current.AD_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnAprobarADGRAL_Click(object sender, EventArgs e)
        {
            var msg = "ERROR";
            if (lO_VistoBuenoCheckBox.Checked && rRHH_VistoBuenoCheckBox.Checked && oP_VistoBuenoCheckBox.Checked && aD_VistoBuenoCheckBox.Checked)
            {
                //graba
                try
                {
                    var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                    _current.ADGRAL_VistoBueno = true;
                    _current.ADGRAL_Fecha = DateTime.Now.Date;
                    hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                    MessageBox.Show("Liquidación Aprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Faltan Áreas por aprobar.", "Denegado.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnDesaprobarAGGRAL_Click(object sender, EventArgs e)
        {
            var msg = "ERROR";

            if (lO_VistoBuenoCheckBox.Checked && rRHH_VistoBuenoCheckBox.Checked && oP_VistoBuenoCheckBox.Checked && aD_VistoBuenoCheckBox.Checked)
            {
                if (aDGRAL_VistoBuenoCheckBox.Checked)
                {
                    //graba
                    try
                    {
                        var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;
                        _current.ADGRAL_VistoBueno = false;
                        _current.ADGRAL_Fecha = DateTime.Now.Date;
                        hojaBL.UpdateHojaRecorrido(_current, IdAreaLiquidacion);
                        MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        msg = ex.Message;
                        MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("Liquidación Desaprobada", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void lA_EPPCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void lA_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void lT_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void lS_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void rRHH_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void oP_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void aD_OtrosCheckBox_CheckedChanged(object sender, EventArgs e)
        {
            EnableDisable();
        }

        private void llblHojaOperaciones_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            var _current = hOJA_FIN_RECORRIDO_LIQUIDACIONESBindingSource.Current as HOJA_FIN_RECORRIDO_LIQUIDACIONES;

            if (_current != null && _current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 5 || _current.LIQUIDACION.CONTRATO.ESPECIALIDAD.IdCategoria != 19)
            {
                if (!_current.OP_VistoBueno)
                {
                    var hojaOperaciones = new FrmHojaRecorridoOperaciones();
                    hojaOperaciones.IdHojaRecorridoLiquidacion = _current.IdLiquidacion;
                    hojaOperaciones.Editar();
                    //hojaOperaciones.MdiParent = this;
                    hojaOperaciones.ShowDialog();
                    CargarDatos();
                }
                else
                {
                    MessageBox.Show("Esta Liquidación ya fue Aprobada,", "Liquidación.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
    }
}
